﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using SilverlightCairngorm.Control;
using PowerArrow.nasa.Command;

namespace PowerArrow.nasa.Control
{
    public class PowerArrowController : FrontController
    {
        public const string SC_EVENT_RUN_BG = "_sc_event_run_bg";
        public const string SC_EVENT_PAUSE_BG = "_sc_event_pause_bg";
        public const string SC_EVENT_STOP_BG = "_sc_event_stop_bg";
        public const string SC_EVENT_RESUME_BG = "_sc_event_resume_bg";

        public const string ARR_EVENT_GENERAL = "_arr_event_general";
        public const string ARR_EVENT_ONREADY = "_arr_event_onready";
        public const string ARR_EVENT_ONFIRE = "_arr_event_onfire";
        public const string ARR_EVENT_OFFFIRE = "_arr_event_offfire";

        public const string CHK_EVENT_RESULT = "_chk_event_result";

        private static readonly PowerArrowController _instance = new PowerArrowController();

        static PowerArrowController() { 
        
        }

        public static PowerArrowController Instance { get { return _instance; } }

        private PowerArrowController() : base() {
            base.addCommand(SC_EVENT_RUN_BG, typeof(BgCommand));
            base.addCommand(SC_EVENT_PAUSE_BG, typeof(BgCommand));
            base.addCommand(SC_EVENT_STOP_BG, typeof(BgCommand));
            base.addCommand(SC_EVENT_RESUME_BG, typeof(BgCommand));
            base.addCommand(ARR_EVENT_GENERAL, typeof(ArrCommand));
            base.addCommand(ARR_EVENT_ONREADY, typeof(ArrCommand));
            base.addCommand(ARR_EVENT_ONFIRE, typeof(ArrCommand));
            base.addCommand(ARR_EVENT_OFFFIRE, typeof(ArrCommand));
            base.addCommand(CHK_EVENT_RESULT, typeof(ChkCommend));
        }
    }
}
